package com.hsd.controller;

import java.util.HashMap;
import java.util.Map;

public abstract class BaseController {
    /**
     * 自定义响应json：通过Jackson的ObjectMapper对象将Map转化为如下格式的json
     * <p>
     * 响应统一json格式为：
     * <p>
     * {
     * "cod": 200/-1,
     * "msg":"提示信息",
     * "data":{数据}/[数据集]
     * }
     *
     * @param isOk  请求状态（success/fail）
     * @param s_msg 自定义数据请求成功的提示信息
     * @param f_msg 自定义数据请求失败的提示信息
     * @param data  数据
     * @return
     */
    protected Map<String, Object> response(boolean isOk, String s_msg, String f_msg, Object data) {
        Map<String, Object> map = new HashMap<>();
        map.put("code", isOk ? 200 : -1);
        map.put("msg", isOk ? s_msg : f_msg);
        map.put("data", data);
        return map;
    }

    /**
     * 响应状态和数据
     *
     * @param isOk
     * @param data
     * @return
     */
    protected Map<String, Object> response(boolean isOk, Object data) {
        return response(isOk, "操作成功", "操作失败", data);
    }

    /**
     * 响应状态
     *
     * @param isOk 成功还是失败
     * @return
     */
    protected Map<String, Object> response(boolean isOk) {
        return response(isOk, null);
    }

    /**
     * 响应数据
     *
     * @param data 数据
     * @return
     */
    protected Map<String, Object> response(Object data) {
        return response(true, data);
    }


}
